//package edu.hubu.supermarketmanagementsystem.mapper;
//
//import edu.hubu.supermarketmanagementsystem.entity.ProductFile;
//import org.junit.jupiter.api.Test;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.test.context.ActiveProfiles;
//import org.springframework.transaction.annotation.Transactional;
//
//import java.math.BigDecimal;
//import java.util.Date;
//import java.util.List;
//
//import static org.junit.jupiter.api.Assertions.*;
//
//@SpringBootTest
//@ActiveProfiles("test") // 使用 application-test.properties
//@Transactional
//class ProductFileMapperTest {
//
//    @Autowired
//    private ProductFileMapper productFileMapper;
//
//    @Test
//    void testInsertAndSelect() {
//        // 插入一条商品档案记录
//        ProductFile productFile = new ProductFile();
//        productFile.setProductId(1);
//        productFile.setProductName("Test Product File");
//        productFile.setPurchasePrice(BigDecimal.valueOf(5.0));
//        productFile.setPrice(BigDecimal.valueOf(10.0));
//        productFile.setDateOfUse(new Date());
//
//        productFileMapper.insertProductFile(productFile);
//        System.out.println("Inserted ProductFile ID: " + productFile.getProductRecordId());
//
//        // 查询插入的商品档案
//        ProductFile fetchedProductFile = productFileMapper.selectById(productFile.getProductRecordId());
//        System.out.println("Fetched ProductFile: " + fetchedProductFile);
//
//        assertNotNull(fetchedProductFile);
//        assertEquals("Test Product File", fetchedProductFile.getProductName());
//    }
//
//    @Test
//    void testSelectAll() {
//        // 先插入一条商品档案记录
//        ProductFile productFile = new ProductFile();
//        productFile.setProductId(1);
//        productFile.setProductName("Test Product File");
//        productFile.setPurchasePrice(BigDecimal.valueOf(5.0));
//        productFile.setPrice(BigDecimal.valueOf(10.0));
//        productFile.setDateOfUse(new Date());
//        productFileMapper.insertProductFile(productFile);
//
//        // 查询所有商品档案
//        List<ProductFile> productFiles = productFileMapper.selectAll();
//        assertNotNull(productFiles);
//        assertFalse(productFiles.isEmpty());
//    }
//
//
//    @Test
//    void testUpdateProductFile() {
//        // 插入一条商品档案记录
//        ProductFile productFile = new ProductFile();
//        productFile.setProductId(1);
//        productFile.setProductName("Old Product File");
//        productFile.setPurchasePrice(BigDecimal.valueOf(5.0));
//        productFile.setPrice(BigDecimal.valueOf(10.0));
//        productFile.setDateOfUse(new Date());
//        productFileMapper.insertProductFile(productFile);
//
//        // 更新商品档案信息
//        productFile.setProductName("Updated Product File");
//        productFile.setPrice(BigDecimal.valueOf(15.0));
//        productFileMapper.updateProductFile(productFile);
//
//        // 查询更新后的商品档案
//        ProductFile updatedProductFile = productFileMapper.selectById(productFile.getProductRecordId());
//        assertNotNull(updatedProductFile);
//        assertEquals("Updated Product File", updatedProductFile.getProductName());
//        assertEquals(new BigDecimal("15.00"), updatedProductFile.getPrice());
//    }
//
//    @Test
//    void testDeleteProductFile() {
//        // 插入一条商品档案记录
//        ProductFile productFile = new ProductFile();
//        productFile.setProductId(1);
//        productFile.setProductName("Product File to Delete");
//        productFile.setPurchasePrice(BigDecimal.valueOf(5.0));
//        productFile.setPrice(BigDecimal.valueOf(10.0));
//        productFile.setDateOfUse(new Date());
//        productFileMapper.insertProductFile(productFile);
//
//        // 删除商品档案
//        productFileMapper.deleteProductFileById(productFile.getProductRecordId());
//
//        // 验证商品档案已被删除
//        ProductFile deletedProductFile = productFileMapper.selectById(productFile.getProductRecordId());
//        assertNull(deletedProductFile);
//    }
//
//    @Test
//    void testSelectByProductId() {
//        // 插入一条商品档案记录
//        ProductFile productFile = new ProductFile();
//        productFile.setProductId(1);
//        productFile.setProductName("Test Product File by Product ID");
//        productFile.setPurchasePrice(BigDecimal.valueOf(5.0));
//        productFile.setPrice(BigDecimal.valueOf(10.0));
//        productFile.setDateOfUse(new Date());
//        productFileMapper.insertProductFile(productFile);
//
//        // 根据商品ID查询商品档案
//        ProductFile fetchedProductFile = productFileMapper.selectByProductId(productFile.getProductId());
//        assertNotNull(fetchedProductFile);
//        assertEquals("Test Product File by Product ID", fetchedProductFile.getProductName());
//    }
//
//    @Test
//    void testSearchByProductName() {
//        // 插入两条商品档案记录
//        ProductFile productFile1 = new ProductFile();
//        productFile1.setProductId(1);
//        productFile1.setProductName("Search Test Product File 1");
//        productFile1.setPurchasePrice(BigDecimal.valueOf(5.0));
//        productFile1.setPrice(BigDecimal.valueOf(10.0));
//        productFile1.setDateOfUse(new Date());
//        productFileMapper.insertProductFile(productFile1);
//
//        ProductFile productFile2 = new ProductFile();
//        productFile2.setProductId(2);
//        productFile2.setProductName("Search Test Product File 2");
//        productFile2.setPurchasePrice(BigDecimal.valueOf(5.0));
//        productFile2.setPrice(BigDecimal.valueOf(10.0));
//        productFile2.setDateOfUse(new Date());
//        productFileMapper.insertProductFile(productFile2);
//
//        // 模糊查询
//        List<ProductFile> productFiles = productFileMapper.searchByProductName("Search Test");
//        assertNotNull(productFiles);
//        assertEquals(2, productFiles.size());
//    }
//}
